/**
 * Created by xiaomin on 2015/5/30.
 */

var ngApp = angular.module('ngApp',[
    'ui.router',
    'MyAnimations',
    'MyControllers',
    'MyServices'
]);

/**
 * 由于整个应用都会和路由打交道，所以这里把$state和$stateParams这两个对象放到$rootScope上，方便其它地方引用和注入。
 * 这里的run方法只会在angular启动的时候运行一次。
 * @param  {[type]} $rootScope
 * @param  {[type]} $state
 * @param  {[type]} $stateParams
 * @return {[type]}
 */
ngApp.run(function($rootScope, $state, $stateParams) {
    $rootScope.$state = $state;
    $rootScope.$stateParams = $stateParams;
});

/**
 * 配置路由。
 * 注意这里采用的是ui-router这个路由，而不是ng原生的路由。
 * ng原生的路由不能支持嵌套视图，所以这里必须使用ui-router。
 * @param  {[type]} $stateProvider
 * @param  {[type]} $urlRouterProvider
 * @return {[type]}
 */
// 所有路由对应的模板均在此定义。。。
ngApp.config(function($stateProvider, $urlRouterProvider) {
    $urlRouterProvider.otherwise('/articles');
    $stateProvider
        .state('customer', {
            url: '/articles',
            views: {
                '': {
                    templateUrl: 'static/tpls/customer/home.html'
                },
                'main@customer':{
                    templateUrl:'static/tpls/customer/article/articles.html'
                },
                'list@customer':{
                    templateUrl:'static/tpls/customer/article/list.html',
                    controller: 'ArticleListCtrl'
                },
                'top@customer':{
                    templateUrl:'static/tpls/customer/public/top.html'
                }
            }
        })
        .state('customer.publish',{
            url:'/publish',
            views: {
                'main@customer':{
                    templateUrl:'static/tpls/customer/article/publish.html'
                }
            }

        })
        .state('customer.type',{
            url:'/type/:id',
            views: {
                'list@customer':{
                    templateUrl: 'static/tpls/customer/article/list.html',
                    controller: 'ArticleTypeCtrl'
                }
            }

        })
        .state('customer.detail',{
            url:'/:id',
            views: {
                'main@customer':{
                    templateUrl: 'static/tpls/customer/article/detail.html',
                    controller: 'ArticleDetailCtrl'
                }
            }

        })

       /* .state('admin', {
            url: '/admin',
            views: {
                '': {
                    templateUrl: 'static/tpls/admin/home.html'
                },
                'left@admin':{
                    templateUrl:'static/tpls/admin/public/left.html'
                },
                'top@admin':{
                    templateUrl:'static/tpls/customer/public/top.html'
                },
                'right@admin':{
                    templateUrl:'static/tpls/admin/system/privilege.html'
                }
            }
        })*/
//        .state('booklist', {
//            url: '/{bookType:[0-9]{1,4}}',
//            views: { //注意这里的写法，当一个页面上带有多个ui-view的时候如何进行命名和视图模板的加载动作
//                '': {
//                    templateUrl: 'static/tpls/bookList.html'
//                },
//                'booktype@booklist': {
//                    templateUrl: 'static/tpls/bookType.html'
//                },
//                'bookgrid@booklist': {
//                    templateUrl: 'static/tpls/bookGrid.html'
//                }
//            }
//        })
//        .state('addbook', {
//            url: '/addbook',
//            templateUrl: 'static/tpls/addBookForm.html'
//        })
//        .state('bookdetail', {
//            url: '/bookdetail/:bookId', //注意这里在路由中传参数的方式
//            templateUrl: 'static/tpls/bookDetail.html'
//        })
});
